package com.lhd.service;

import java.util.List;

import com.lhd.entity.query.UserQuery;
import com.lhd.entity.po.User;
import com.lhd.entity.vo.PaginationResultVO;

/**
 * @Author: liuhd
 * @Date: 2025/03/16
 * @Description: User业务接口
 */
public interface UserService {
	/**
	 * 根据条件查询列表
	 */
	List<User> findListByQuery(UserQuery query);

	/**
	 * 根据条件查询数量
	 */
	Long findCountByQuery(UserQuery query);

	/**
	 * 分页查询
	 */
	PaginationResultVO<User> findListByPage(UserQuery query);

	/**
	 * 新增
	 */
	Long add(User bean);

	/**
	 * 新增或更新
	 */
	Long addOrUpdate(User bean);

	/**
	 * 批量新增
	 */
	Long addBatch(List<User> listBean);

	/**
	 * 批量新增或修改
	 */
	Long addOrUpdateBatch(List<User> listBean);

	/**
	 * 多条件更新
	 */
	Long updateByQuery(User bean, UserQuery query);

	/**
	 * 多条件删除
	 */
	Long deleteByQuery(UserQuery query);

	/**
	 * 根据PRIMARY查询
	 */
	User getUserById(Integer id);

	/**
	 * 根据PRIMARY删除
	 */
	Long deleteUserById(Integer id);

	/**
	 * 根据PRIMARY更新
	 */
	Long updateUserById(User bean, Integer id);

	// 根据号码查询
	User findUserByPhone(String phone);

	// 向邮箱发送验证码
    void sendCode(String email);
}